#include <avr/io.h>
#include <util/delay.h>


void adc_init(void){
	ADCSRA |=(1<<ADEN); // se seteaza ADEN pentru a activa convertorul analogic-digital
}


void adc_chan_sel(unsigned char channel){//functia care selecteaza canalul adc-ului
	ADMUX |= channel;
}

void adc_ref_sel(void){
	//ADMUX = (1<<REFS0)|(1<<REFS1);// -> INTERNAL 2.56V
	ADMUX |= (1<<REFS0)|(0<<REFS1);// -> AVCC
	//ADMUX = (0<<REFS0)|(0<<REFS1);// -> AREF
}

unsigned int read_adc(unsigned char channel) //functia care citeste rezultatele conversiilor
{
	
	adc_chan_sel(channel);
    ADCSRA|=(1<<ADSC);
    while(ADCSRA & 0x40); // wait for the end of the conversion
    _delay_ms(30);
	
   // adc_low = ADCL; //partea nesemnificativa a rezultatului pe care nu o vom folosi
	//adc_high = ADCH;
  // return ((adc_high>>8)+adc_low);//partea semnificativa a rezultatului pe care o vom folosi pentru afisarea temperaturii
  return ADC;
}

